// 能发送异步ajax请求的函数模块
// 封装axios库
// 函数的返回值是promise对象

// 优化：
// 1.统一处理请求异常

import { message } from 'antd'
import axios from 'axios'

export default function ajax(url, data = {}, type = 'GET') {

  return new Promise((resolve, reject) => {
    // 1. 执行异步ajax请求
    let promise
    if (type === 'GET') { // 发GET请求
      promise = axios.get(url, { // 配置对象
        params: data // 指定请求参数
      })
    } else { // 发POST请求
      promise = axios.post(url, data)
    }

    promise
      // 2. 如果成功，调用resolve(value)
      .then(response => {
        resolve(response)
      })
      // 3.如果失败，不调用reject(reason)，而是提示异常
      .catch(error => {
        message.error('请求失败', error)
      })
  })

}